#pragma once

#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
#include <time.h>

#include "Labyrinth.h"
#include "Position.h"
#include "Constant.h"
#include "Fire.h"

class Bomb
{
protected:
	
	Position bombPosition;
	Position ignitionUP;
	Position ignitionDOWN;
	Position ignitionLEFT;
	Position ignitionRIGHT;

	Labyrinth labyrinth;
	int range;
	float initTime;
	vector <class Bomb>::iterator Bomb_iterator;
	
public:
	Bomb(Position, int, float&, Labyrinth);
	//~Bomb();
	
	void getBomb(Labyrinth&);
	
	
	int getRange() {return range;}
	Position getBombPosition() {return bombPosition;}
	
	void refreshBomb(float&, Labyrinth&, vector<Bomb>&, vector<Fire>&);
	
	void explode(Labyrinth&, vector<Bomb>&, float&, vector<Fire>&);
	void ignition(Labyrinth&, Position, Direction, vector<Bomb>&, float&, vector<Fire>&);
	
};
